3. 环境与控制 Environments & Controls

以下面这段代码片段为例进行讲解:

from opoerator import mul

def square(x):
	return mul(x,x)

square(square(3))

当执行这段代码时,我们会得到三个帧与三个环境:
Pasted image 20250225200911.png

当我们对内层的 square(3) 求值时,实际发生了如下的过程:

  1. 3 绑定到形参 x
  2. 执行函数体,发现需要返回表达式 mul(x,x) 的值。
  3. 对表达式的运算符与操作数求值,操作数 x 与值 3 的绑定位于当前帧 f2 内;而运算符 mul 的在 f2 内无法查找到对应的值,向该环境下 f2 帧的父亲全局帧查询,查找到 mul 绑定到函数 func mul()。对参数应用函数,得到结果 9 ,将其作为该表达式的值返回。

总的来说,语句(Statement) 即由解释器执行并进行一些操作的的命令。跨越多行的语句被称为复合语句,结构如下:

<标头>:
	<语句>
	...
<分隔标头>:
	<语句>
	...

一个标头,连带所有缩进的语句为一个从句,缩进的语句则为该从句的主体

编写程序时,难免出现错误。Python 中的错误(Errors) 一般有三种形式: